package com.sky.mapper;

import com.github.pagehelper.Page;
import com.sky.anno.AutoFill;
import com.sky.dto.DishPageQueryDTO;
import com.sky.entity.Dish;
import com.sky.enumeration.OperationType;
import com.sky.vo.DishVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

//@Mapper
public interface DishMapper {
    //通过分类id查询是否有关联的菜品
    int countByCategoryId(Long id);

    //新增菜品
    @AutoFill(value = OperationType.INSERT)//自定义注解配合AutoFillAspect(aop),用来填充补充对应数据(修改人,日期什么的)
    void insert(Dish dish);

    //分页查询
    Page<DishVO> pageQuery(DishPageQueryDTO dto);

    //根据id查询菜品和口味数据
    Dish getById(Long id);

    //批量删除菜品
    void delete(List<Long> ids);

    //修改菜品基本信息,以及起售停售状态
    @AutoFill(value = OperationType.UPDATE)
    void update(Dish dish);

    //根据分类id查询菜品
    List<DishVO> list(Long categoryId);
}
